﻿using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Maestro_Proveedores;

namespace Maestro_Proveedores.Forms

{
    public partial class BuscarProveedor : Form
    {
        /// <summary>
        /// Esta variable sirve de bandera para indicar si se ha seleccionado un registro de la lista.
        /// </summary>
        private Boolean ok = false;
        /// <summary>
        /// Esta variable guardara el ID del proveedor encontrado.
        /// </summary>
        public string IdEncontrado = string.Empty;

        /// <summary>
        /// Este formulario auxiliar es utilizado por la clase Migracion para permitirle seleccionar al usuario que registro desea migrar desde INFOR (este formulario solo se muestra cuando existen 2 proveedores con el mismo NIT registrados en INFOR XA).
        /// </summary>
        public BuscarProveedor()
        {
            InitializeComponent();
            try
            {
                this.proc_datos_proveedoresTableAdapter.Fill(this.cORPORATIVADataSet.proc_datos_proveedores);
            }
            catch (Exception) 
            {}
        }

        private void BuscarProveedor_Shown(object sender, EventArgs e)
        {
            this.IdEncontrado = string.Empty;
            this.filterText.Text = string.Empty;
            this.procdatosproveedoresBindingSource.RemoveFilter();
        }
                
        private void helpPictureBox_Click(object sender, EventArgs e)
        {
            Help.ShowHelp(this, ConfiguracionDelSistema.manualDeUsuario, HelpNavigator.TableOfContents);
        }
                
        private void filterText_TextChanged(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            BindingSource bs = ((BindingNavigator)((ToolStripTextBox)sender).GetCurrentParent()).BindingSource;
            ToolStripTextBox tb = (ToolStripTextBox)sender;
            try
            {
                if (tb.Text.Equals(string.Empty))
                {
                    bs.RemoveFilter();
                    return;
                }
                String filtro = "ISNULL(id,'')+' '+ISNULL(nit,'')+' '+ISNULL(razon_social,'')+' '+ISNULL(representante_legal,'')+' '+ISNULL(nombre_popular,'')+' '+ISNULL(tipo_proveedor,'')+' '+ISNULL(grupo_proveedor,'') like'%" + tb.Text + "%'";
                bs.Filter = filtro;
            }
            catch (Exception ex)
            {
                Maestro_Proveedores.herramientas.MessageException.show(ex);
                bs.CancelEdit();
            }
            Cursor.Current = Cursors.Default;
        }
        
        private void filter_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            BindingSource bs = ((BindingNavigator)((ToolStripButton)sender).GetCurrentParent()).BindingSource;
            try
            {
                this.proc_datos_proveedoresTableAdapter.Fill(this.cORPORATIVADataSet.proc_datos_proveedores);
                bs.RemoveFilter();
                this.filterText.Text = "";
            }
            catch (Exception ex)
            {
                Maestro_Proveedores.herramientas.MessageException.show(ex);
                bs.CancelEdit();
            }
            Cursor.Current = Cursors.Default;
        }

        private void pRV_PROVEEDORDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (this.pRV_PROVEEDORDataGridView.CurrentCell.RowIndex != -1) //&& !((DataGridViewComboBoxCell)this.dataGridView1.CurrentCell).FormattedValue.ToString().Equals(string.Empty)) 
                {
                    this.IdEncontrado = this.pRV_PROVEEDORDataGridView.CurrentRow.Cells[0].Value.ToString();
                    this.Close();
                }
            }
            catch (Exception ex) 
            {
                herramientas.MessageException.show(ex);
            }            
        }

        private void BuscarProveedor_Load(object sender, EventArgs e)
        {
            // TODO: esta línea de código carga datos en la tabla 'cORPORATIVADataSet.proc_datos_proveedores' Puede moverla o quitarla según sea necesario.
            //this.proc_datos_proveedoresTableAdapter.Fill(this.cORPORATIVADataSet.proc_datos_proveedores);

        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            try
            {
                this.proc_datos_proveedoresTableAdapter.Fill(this.cORPORATIVADataSet.proc_datos_proveedores);
            }
            catch (Exception)
            { }
        }
    }
}
